export function noop() {}
/**
 * px转vw
 * @param px 像素值
 * @returns vw值
 */
export function px2vw(px) {
  return px > 1 || px < -1
    ? `${Math.round((px / 375) * 100 * 100) / 100}vw`
    : `${px}px`
}
/**
 * 以375px为基准换算px值
 * @param px 待换算的px值
 * @returns 换算后的px值
 */
export function pxTransform(px) {
  return (px / 375) * window.innerWidth
}
/**
 * 通过url获取文件名
 * @param {*} url
 * @returns
 */
export function getFilenameByUrl(url = '') {
  return url.split('/').pop()
}

export function setTitle(title = ' ') {
  document.title = title
  window.yyn.invokeJSB('setTitle', {
    title: title
  })
}

/**
 * 获取扩展名
 * @param {*} url
 * @returns
 */
export function getExtByName(name = '') {
  return name.split('.').pop()?.toLowerCase() || 'unknown'
}

/**
 * 防抖函数。
 * 防抖函数会在最后一次调用后的 `wait` 毫秒后执行 `func`。
 * 如果在这段时间内再次调用防抖函数，则会重新计时。
 *
 * @param {Function} func - 需要防抖的函数。
 * @param {number} wait - 延迟执行的时间，单位为毫秒。
 * @returns {Function} - 返回一个新的防抖函数。
 */
export function debounce(func, wait) {
  let timeout
  return function (...args) {
    clearTimeout(timeout)
    timeout = setTimeout(() => func.apply(this, args), wait)
  }
}

// 跳转app待办页面
export function toAppToDoPage(type) {
  window.yyn.invokeJSB('openWindow', {
    openUrl: `https://t-tio.ybsjyyn.com/h5/tio/#/todolist?active=lyrical&type=${type}`,
    module: 'tio',
    isFullScreen: 1,
    hiddenTitleBar: true
  })
}
// 关闭app网页页面
export function closeAppWebPage() {
  window.yyn.closeWindow()
}

// 处理附件数据为空的情况
export function handleFileData(data) {
  return data?.map((item) => ({
    originalName: item.originalName || 'empty.png',
    url: item.url || 'empty.png'
  }))
}